#ifndef ITERADORBLOQUES_H_
#define ITERADORBLOQUES_H_

#include "Iterador.h"
#include "../Constantes.h"
#include "list"

class Bloque;
class EstrategiaAlmacenamientoBloques;

class IteradorBloques: public Iterador {

friend class EstrategiaAlmacenamientoBloques;

private:
	EstrategiaAlmacenamientoBloques* estrategia;
	Bloque* bloqueActual;
	list<Componente*>::iterator itBloqueActual;
	list<Componente*> listaRegistros;

	bool levantarBloque();

public:
	IteradorBloques(EstrategiaAlmacenamientoBloques* estrategia);
	virtual ~IteradorBloques();

	virtual Bytes getSiguiente();
	virtual bool tieneSiguiente();
	virtual void reiniciarIterador();
	virtual offset getNumBloqueActual();
};

#endif /* ITERADORBLOQUES_H_ */
